home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / math / gle-3.000 / gle-3 / gle / dviep24.c < prev    next >
C/C++ Source or Header  |  1995-02-07  |  1KB  |  51 lines

  1. #define XSIZECM 19        /* at 120 DPI  */
  2. #define YSIZECM 27        /* at 72 DPI */
  3. #ifdef __TURBOC__
  4. #define NXBITS 1352 /* 180 dpi */
  5. #define NYBITS 1920    /* 180 dpi  (24 pin epson printers) */
  6. #else
  7. #define NXBITS 300    /* because vax cant cope with one huge record */
  8. #define NYBITS 408
  9. #endif
  10. #include "bitmap.h"
  11. dvitype(void)
  12. {
  13.     printf("Epson (24Pin)");
  14. }
  15. bitmap_print()
  16. {
  17.     int y;
  18.     for (y=nybits-24 ; y>=0 ; y-=24)
  19.         print_row(y);
  20. }
  21. print_row(int y)
  22. {
  23.     unsigned char savechar,temp;
  24.     static unsigned char out_buff[3*NXBITS+20]="\x1b*\x27";
  25.     unsigned int r,i,j,newy,x,z;
  26.     unsigned char *line;
  27.     dbg printf("row %d\n",y);
  28.     for (r=5;r<(3*NXBITS+6);r++) out_buff[r] = 0;
  29.     for (r=0; r<24; r++,y++) {
  30.         line = bitmap_line(y);
  31.         for (x=0,j = 5; x<NXBITS;x++,j++) {
  32.             z = 1 << (x % 8);
  33.             if ((z & line[x/8]) != 0) {
  34.                 if (r<8) {
  35.                      out_buff[x*3+7] |= 1 << r;
  36.                 } else if (r<16) {
  37.                      out_buff[x*3+6] |= 1 << (r-8);
  38.                 } else {
  39.                      out_buff[x*3+5] |= 1 << (r-16);
  40.                 }
  41.             }
  42.         }
  43.     }
  44.     out_buff[3] = (x) & 255;
  45.     out_buff[4] = (x) / 256;
  46.     printmem(out_buff,x*3+5);
  47.     pprintf("\x0d\x1bJ\x18");
  48. }
  49.  
  50.  
  51.